/* eslint-disable import/no-duplicates */
import Axios from 'axios'
import store from '@/store'
import { Message } from 'element-ui'
// import router from '@/router'
// 开启跨域传递cookie
// Axios.defaults.withCredentials = true
// import store from '@/store'
const axios = Axios.create({
  // 环境变量当做基地址
  baseURL: process.env.VUE_APP_BASE_URL,
  timeout: 20000 // request timeout
})
// 添加请求拦截器
axios.interceptors.request.use(function (config) {
  // 封装请求头拦截器
  // 1，需要判断我们的token值是否有，通过长度，再判断Authorization是否是为定义的
  // 2，再给config的headers设置Authorization赋值token
  if (!config.headers.Authorization && store.state.user.token) {
    config.headers.Authorization = store.state.user.token
  }
  // 在发送请求之前做些什么
  return config
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error)
})
// 响应拦截器
axios.interceptors.response.use(
  // 统一处理，解构数据
  // 统一处理错误
  response => {
    // console.log(response, '响应的数据')
    // if (response.status === 200) {
    //   return response.data
    // } else {
    //   Message.error({
    //     message: '出现了错误'
    //   })
    //   // // 如果登录失败，将错误事件触发
    //   // return Promise.reject()
    // }
    return response
  },
  error => {
    console.log(error.response)
    Message.error({
      message: error.response.data
    })
    // if (error.response.status) {
    //   store.commit('user/MasaveToken', '')
    //   router.push('/login')
    // }
    return Promise.reject(error)
  }
)

export default ({ url, method = 'GET', data, params, headers }) => {
  return axios({
    url,
    method,
    data,
    params,
    headers
  })
}
